package com.misboot.document.client;

import com.misboot.document.client.fallbackFactory.MessageClientFallbackFactory;
import com.misboot.document.config.FeignConfig;
import com.misboot.document.constants.FeignClientName;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;


/**
 * 调用misboot-message相关接口
 * 本地开发时可以指定 ip+网关端口进行访问  在configuration中配置 url = "http://192.168.1.104:9774/system"
 * @Author 湖南佐佑时代科技有限公司
 * @Version 5.4.21
 * @Email service@zuoyo.com
 * @Date 2022-06-13 09:39:40
 */
@FeignClient(name = FeignClientName.MESSAGE_SERVER_NAME,
        configuration = FeignConfig.class,
        fallbackFactory = MessageClientFallbackFactory.class)
public interface MessageClient {

    /**
     * @Description   发送邮件
     * @Param toMail 接收邮箱账号 逗号分隔
     * @Param subject 主题
     * @Param content 邮箱内容
     * @Return List<Map<String, Object>>
     * @Author 湖南佐佑时代科技有限公司<service@zuoyo.com>
     * @Date 2019-6-7 15:48
     */
    @PostMapping("/messageMail/sendSimpleMail")
    Object sendSimpleMail(@RequestParam Map<String, Object> map);


    /**
     * @Description   发送短信
     * @Param phoneNumbers 手机号码
     * @Param signName 签名
     * @Param templateCode 模板code
     * @Param templateParam 模板参数
     * @Param SenderId 发送人工号
     * @Return Object
     * @Author 湖南佐佑时代科技有限公司<service@zuoyo.com>
     * @Date 2019-6-7 15:48
     */
    @PostMapping(value = "/msgShortMessage/sendSms")
    Object sendSms(@RequestParam("phoneNumber") String phoneNumber,
                   @RequestParam("signName") String signName,
                   @RequestParam("templateCode") String templateCode,
                   @RequestParam("templateParam") String templateParam,
                   @RequestParam("SenderId") String SenderId);

    /**
     * @MethodName getAuthorizedMenu
     * @Description   站内信
     * @Param title 标题
     * @Param description 描述
     * @Param receiverId 接收人工号 逗号分隔
     * @Param url URL
     * @Param content 内容
     * @Return Object
     * @Author 湖南佐佑时代科技有限公司<service@zuoyo.com>
     * @Date 2019-6-7 15:48
     */
    @PostMapping(value = "/msgWebNotice/save")
    Object save(@RequestParam Map<String, Object> map);
}


